package com.ruoyi.system.service;

import com.ruoyi.system.domain.Student;
import com.ruoyi.system.domain.SysPrizeEvent;
import com.ruoyi.system.domain.SyseEventsPosted;
import com.ruoyi.system.domain.mongodb.Schools;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 赛事发布 业务层
 *
 * @author ganshiyu
 */
public interface ISysEventsPostedService {

     /**
      * 查询活动结束时间
      */
     public String queryEndTimeByEpid(String epid);


     /**
      * 教师页面我的邀请查询被邀请的赛事信息
      * @param tid
      * @return
      */
     public List<SyseEventsPosted> queryEventByTid(String tid);

     /**
      * 教师页面查询所有区域级赛事信息
      */
     public List<SyseEventsPosted> querySyseEventsPostedByEplevel();

     /**
      * 查询所有赛事信息
      */
     public List<SyseEventsPosted> queryAllSyseEventsPosted(SyseEventsPosted syseEventsPosted);

     /**
      * 添加赛事发布
      * @param syseEventsPosted 实体类
      * @return 结果
      */
     int insertEventsPosted(SyseEventsPosted syseEventsPosted);

     /**
      *  赛事管理  条件查询+分页
      * @param syseEventsPosted 实体类
      * @return 对象列表
      */
     Map<String,Object> selectByPage(SyseEventsPosted syseEventsPosted);


     /**
      * 根据赛事状态进行查询
      * */
     List<SyseEventsPosted> selectEpTitle(String epState, String schoolId);


     /**
      *  修改赛事
      * @param syseEventsPosted 实体类
      * @return 结果
      */
     int edit(SyseEventsPosted syseEventsPosted);

     /**
      *  删除赛事
      * @param epid
      * @return 结果
      */
     int remove(int epid);

     /**
      *  发布
      * @param epid
      * @return 结果
      */
     int editState(int epid);

     /**
      *  通过id查询对象
      * @param epid
      * @return 对象
      */
     SyseEventsPosted selectById(int epid);


     /*
      * 查询标题
      * */
     List<SyseEventsPosted> selectTitle();

     /*
      * 查询主办方
      * */
     List<SyseEventsPosted> selectSponsor();

     /*
      * 查询赛事状态
      * */
     List<SyseEventsPosted> selectEpstate();

     /*
      * 查询赛事级别
      * */
     List<SyseEventsPosted> selectEplevel();

     /*
     修改获奖名单路径
      */
     void updateRankingpath(SyseEventsPosted syseEventsPosted);

     /*
     * 大赛排名分页 (全部)
     * */
     List<SyseEventsPosted> rankAllPage(String epLevel);

     /*
     * 对获取的排名根据赛事id进行拆分
     * */
     List< List<SyseEventsPosted>> EventsPosteds2(List<SyseEventsPosted> stus);

     /**查询某个赛事下面的所有赛事状态*/
    List<SyseEventsPosted> selectByEpTitle(Integer epid);

    /** 根据教师id查询学校信息*/
    Schools queryUsers(String id);

     SyseEventsPosted selectSyseEventsPostedById(Integer epid);

    List<SyseEventsPosted> selectSsTeacherSchool(String epState, String teacherId);

     /**
      * 定时任务：更改赛事活动中还是已结束的状态
      * @return
      */
    boolean updateEventsStatus();
}

